[INFO] cloning repository https://github.com/Jengamon/Kobold
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Jengamon/Kobold" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJengamon%2FKobold", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJengamon%2FKobold'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] dd47af29c5303ab4a099441929f6a81541cff1d8
[INFO] checking Jengamon/Kobold against master#cfbc6d4cf1acbac5c025acf8ed68929caa551df3 for pr-75494-beta
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJengamon%2FKobold" "/workspace/builds/worker-3/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/Jengamon/Kobold on toolchain cfbc6d4cf1acbac5c025acf8ed68929caa551df3
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+cfbc6d4cf1acbac5c025acf8ed68929caa551df3" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/Jengamon/Kobold
[INFO] finished tweaking git repo https://github.com/Jengamon/Kobold
[INFO] tweaked toml for git repo https://github.com/Jengamon/Kobold written to /workspace/builds/worker-3/source/Cargo.toml
[INFO] crate git repo https://github.com/Jengamon/Kobold already has a lockfile, it will not be regenerated
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+cfbc6d4cf1acbac5c025acf8ed68929caa551df3" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] error: the lock file /workspace/builds/worker-3/source/Cargo.lock needs to be updated but --locked was passed to prevent this
[INFO] [stderr] If you want to try to generate the lock file without accessing the network, use the --offline flag.
[INFO] the lockfile is outdated, regenerating it
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+cfbc6d4cf1acbac5c025acf8ed68929caa551df3" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }`
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+cfbc6d4cf1acbac5c025acf8ed68929caa551df3" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:a636fd89d022f18117e1dc8fb37a0a009933cdbbe082814857f0e2024962d47c" "/opt/rustwide/cargo-home/bin/cargo" "+cfbc6d4cf1acbac5c025acf8ed68929caa551df3" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] fec301c0eb56c2275a3f95e0d6c0ac1427fdf494094f1f05c33c963b4d220fd5
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "fec301c0eb56c2275a3f95e0d6c0ac1427fdf494094f1f05c33c963b4d220fd5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "fec301c0eb56c2275a3f95e0d6c0ac1427fdf494094f1f05c33c963b4d220fd5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fec301c0eb56c2275a3f95e0d6c0ac1427fdf494094f1f05c33c963b4d220fd5", kill_on_drop: false }`
[INFO] [stdout] fec301c0eb56c2275a3f95e0d6c0ac1427fdf494094f1f05c33c963b4d220fd5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:a636fd89d022f18117e1dc8fb37a0a009933cdbbe082814857f0e2024962d47c" "/opt/rustwide/cargo-home/bin/cargo" "+cfbc6d4cf1acbac5c025acf8ed68929caa551df3" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 49fc2a2a8cd7b206b50417c40efae00d4858d6c1282f7fc1cf018f578a6003b5
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "49fc2a2a8cd7b206b50417c40efae00d4858d6c1282f7fc1cf018f578a6003b5", kill_on_drop: false }`
[INFO] [stderr]     Checking kobold v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stdout]   --> src/main.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 |     if try!(fs::metadata(dir)).is_dir() {
[INFO] [stdout]    |        ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stdout]   --> src/main.rs:25:22
[INFO] [stdout]    |
[INFO] [stdout] 25 |         for entry in try!(fs::read_dir(dir)) {
[INFO] [stdout]    |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stdout]   --> src/main.rs:26:25
[INFO] [stdout]    |
[INFO] [stdout] 26 |             let entry = try!(entry);
[INFO] [stdout]    |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stdout]   --> src/main.rs:27:16
[INFO] [stdout]    |
[INFO] [stdout] 27 |             if try!(fs::metadata(entry.path())).is_dir() {
[INFO] [stdout]    |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/compiler/lexer.rs:101:32
[INFO] [stdout]     |
[INFO] [stdout] 101 | ...                   'a'...'z' => {data.push(c); state = LexerState::Identifier;},
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/compiler/lexer.rs:102:32
[INFO] [stdout]     |
[INFO] [stdout] 102 | ...                   'A'...'Z' => {data.push(c); state = LexerState::StructIdentifier;},
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/compiler/lexer.rs:103:32
[INFO] [stdout]     |
[INFO] [stdout] 103 | ...                   '0'...'9' => {data.push(c); state = LexerState::Integer;},
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/compiler/lexer.rs:130:32
[INFO] [stdout]     |
[INFO] [stdout] 130 | ...                   'a'...'z' | 'A'...'Z' | '0'...'9' | '_' | '!' | '?' => data.push(c),
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/compiler/lexer.rs:130:44
[INFO] [stdout]     |
[INFO] [stdout] 130 | ...                   'a'...'z' | 'A'...'Z' | '0'...'9' | '_' | '!' | '?' => data.push(c),
[INFO] [stdout]     |                                      ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/compiler/lexer.rs:130:56
[INFO] [stdout]     |
[INFO] [stdout] 130 | ...                   'a'...'z' | 'A'...'Z' | '0'...'9' | '_' | '!' | '?' => data.push(c),
[INFO] [stdout]     |                                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/compiler/lexer.rs:145:32
[INFO] [stdout]     |
[INFO] [stdout] 145 | ...                   'a'...'z' | 'A'...'Z' | '0'...'9' | '_' => data.push(c),
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/compiler/lexer.rs:145:44
[INFO] [stdout]     |
[INFO] [stdout] 145 | ...                   'a'...'z' | 'A'...'Z' | '0'...'9' | '_' => data.push(c),
[INFO] [stdout]     |                                      ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/compiler/lexer.rs:145:56
[INFO] [stdout]     |
[INFO] [stdout] 145 | ...                   'a'...'z' | 'A'...'Z' | '0'...'9' | '_' => data.push(c),
[INFO] [stdout]     |                                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/compiler/lexer.rs:197:32
[INFO] [stdout]     |
[INFO] [stdout] 197 | ...                   '0'...'9' => data.push(c),
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/compiler/lexer.rs:205:32
[INFO] [stdout]     |
[INFO] [stdout] 205 | ...                   '0'...'9' => data.push(c),
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/compiler/trie.rs:15:20
[INFO] [stdout]    |
[INFO] [stdout] 15 |     index: Arc<&'a Fn(char) -> i32>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(char) -> i32`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/compiler/trie.rs:38:35
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn new(hspace: usize, f: &Fn(char) -> i32) -> Trie<R> {
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(char) -> i32`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/compiler/trie.rs:50:44
[INFO] [stdout]    |
[INFO] [stdout] 50 |     fn new_with_arc(hspace: usize, f: Arc<&Fn(char) -> i32>) -> Trie<R> {
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(char) -> i32`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/compiler/parser.rs:12:37
[INFO] [stdout]    |
[INFO] [stdout] 12 |     prefixs: HashMap<TokenType, Box<PrefixParslet>>,
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^ help: use `dyn`: `dyn PrefixParslet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/compiler/parser.rs:13:36
[INFO] [stdout]    |
[INFO] [stdout] 13 |     infixs: HashMap<TokenType, Box<InfixParslet>>,
[INFO] [stdout]    |                                    ^^^^^^^^^^^^ help: use `dyn`: `dyn InfixParslet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/compiler/parser.rs:140:57
[INFO] [stdout]     |
[INFO] [stdout] 140 |     fn register_prefix(&mut self, tt: TokenType, p: Box<PrefixParslet>) {
[INFO] [stdout]     |                                                         ^^^^^^^^^^^^^ help: use `dyn`: `dyn PrefixParslet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/compiler/parser.rs:148:56
[INFO] [stdout]     |
[INFO] [stdout] 148 |     fn register_infix(&mut self, tt: TokenType, p: Box<InfixParslet>) {
[INFO] [stdout]     |                                                        ^^^^^^^^^^^^ help: use `dyn`: `dyn InfixParslet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/compiler/parser.rs:154:37
[INFO] [stdout]     |
[INFO] [stdout] 154 |         let mut parslet: Option<Box<PrefixParslet>> = None;
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^ help: use `dyn`: `dyn PrefixParslet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/compiler/parser.rs:165:42
[INFO] [stdout]     |
[INFO] [stdout] 165 |             let mut nparslet: Option<Box<InfixParslet>> = None;
[INFO] [stdout]     |                                          ^^^^^^^^^^^^ help: use `dyn`: `dyn InfixParslet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/compiler/parslets/literal.rs:12:26
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn dup(&self) -> Box<PrefixParslet> { Box::new(IntegerParslet) }
[INFO] [stdout]    |                          ^^^^^^^^^^^^^ help: use `dyn`: `dyn PrefixParslet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/compiler/parslets/literal.rs:22:26
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn dup(&self) -> Box<PrefixParslet> { Box::new(FloatParslet) }
[INFO] [stdout]    |                          ^^^^^^^^^^^^^ help: use `dyn`: `dyn PrefixParslet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/compiler/parslets/operator.rs:22:26
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn dup(&self) -> Box<PrefixParslet> { Box::new(PrefixOpParslet::new(self.precedence)) }
[INFO] [stdout]    |                          ^^^^^^^^^^^^^ help: use `dyn`: `dyn PrefixParslet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/compiler/parslets/operator.rs:47:26
[INFO] [stdout]    |
[INFO] [stdout] 47 |     fn dup(&self) -> Box<InfixParslet> { return Box::new(BinaryParslet::new(self.precedence, self.left_rec)) }
[INFO] [stdout]    |                          ^^^^^^^^^^^^ help: use `dyn`: `dyn InfixParslet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/compiler/parslets/mod.rs:10:26
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fn dup(&self) -> Box<PrefixParslet>;
[INFO] [stdout]    |                          ^^^^^^^^^^^^^ help: use `dyn`: `dyn PrefixParslet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/compiler/parslets/mod.rs:15:26
[INFO] [stdout]    |
[INFO] [stdout] 15 |     fn dup(&self) -> Box<InfixParslet>;
[INFO] [stdout]    |                          ^^^^^^^^^^^^ help: use `dyn`: `dyn InfixParslet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]  --> src/tests/mod.rs:7:16
[INFO] [stdout]   |
[INFO] [stdout] 7 |         e @ 'a'...'z' => e as i32 - 'a' as i32,
[INFO] [stdout]   |                ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around method argument
[INFO] [stdout]    --> src/main.rs:128:57
[INFO] [stdout]     |
[INFO] [stdout] 128 |     let excludes: Vec<&Path> = opts.excludes.iter().map({|a| Path::new(&*a)}).collect();
[INFO] [stdout]     |                                                         ^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_braces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around method argument
[INFO] [stdout]    --> src/main.rs:132:59
[INFO] [stdout]     |
[INFO] [stdout] 132 |     let classpath: Vec<&Path> = opts.classpath.iter().map({|a| Path::new(&*a)}).collect();
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stdout]   --> src/main.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 |     if try!(fs::metadata(dir)).is_dir() {
[INFO] [stdout]    |        ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stdout]   --> src/main.rs:25:22
[INFO] [stdout]    |
[INFO] [stdout] 25 |         for entry in try!(fs::read_dir(dir)) {
[INFO] [stdout]    |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stdout]   --> src/main.rs:26:25
[INFO] [stdout]    |
[INFO] [stdout] 26 |             let entry = try!(entry);
[INFO] [stdout]    |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stdout]   --> src/main.rs:27:16
[INFO] [stdout]    |
[INFO] [stdout] 27 |             if try!(fs::metadata(entry.path())).is_dir() {
[INFO] [stdout]    |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/compiler/lexer.rs:101:32
[INFO] [stdout]     |
[INFO] [stdout] 101 | ...                   'a'...'z' => {data.push(c); state = LexerState::Identifier;},
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/compiler/lexer.rs:102:32
[INFO] [stdout]     |
[INFO] [stdout] 102 | ...                   'A'...'Z' => {data.push(c); state = LexerState::StructIdentifier;},
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/compiler/lexer.rs:103:32
[INFO] [stdout]     |
[INFO] [stdout] 103 | ...                   '0'...'9' => {data.push(c); state = LexerState::Integer;},
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/compiler/lexer.rs:130:32
[INFO] [stdout]     |
[INFO] [stdout] 130 | ...                   'a'...'z' | 'A'...'Z' | '0'...'9' | '_' | '!' | '?' => data.push(c),
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/compiler/lexer.rs:130:44
[INFO] [stdout]     |
[INFO] [stdout] 130 | ...                   'a'...'z' | 'A'...'Z' | '0'...'9' | '_' | '!' | '?' => data.push(c),
[INFO] [stdout]     |                                      ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/compiler/lexer.rs:130:56
[INFO] [stdout]     |
[INFO] [stdout] 130 | ...                   'a'...'z' | 'A'...'Z' | '0'...'9' | '_' | '!' | '?' => data.push(c),
[INFO] [stdout]     |                                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/compiler/lexer.rs:145:32
[INFO] [stdout]     |
[INFO] [stdout] 145 | ...                   'a'...'z' | 'A'...'Z' | '0'...'9' | '_' => data.push(c),
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/compiler/lexer.rs:145:44
[INFO] [stdout]     |
[INFO] [stdout] 145 | ...                   'a'...'z' | 'A'...'Z' | '0'...'9' | '_' => data.push(c),
[INFO] [stdout]     |                                      ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/compiler/lexer.rs:145:56
[INFO] [stdout]     |
[INFO] [stdout] 145 | ...                   'a'...'z' | 'A'...'Z' | '0'...'9' | '_' => data.push(c),
[INFO] [stdout]     |                                                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/compiler/lexer.rs:197:32
[INFO] [stdout]     |
[INFO] [stdout] 197 | ...                   '0'...'9' => data.push(c),
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/compiler/lexer.rs:205:32
[INFO] [stdout]     |
[INFO] [stdout] 205 | ...                   '0'...'9' => data.push(c),
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/compiler/trie.rs:15:20
[INFO] [stdout]    |
[INFO] [stdout] 15 |     index: Arc<&'a Fn(char) -> i32>
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(char) -> i32`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/compiler/trie.rs:38:35
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn new(hspace: usize, f: &Fn(char) -> i32) -> Trie<R> {
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(char) -> i32`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/compiler/trie.rs:50:44
[INFO] [stdout]    |
[INFO] [stdout] 50 |     fn new_with_arc(hspace: usize, f: Arc<&Fn(char) -> i32>) -> Trie<R> {
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(char) -> i32`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/compiler/parser.rs:12:37
[INFO] [stdout]    |
[INFO] [stdout] 12 |     prefixs: HashMap<TokenType, Box<PrefixParslet>>,
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^ help: use `dyn`: `dyn PrefixParslet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/compiler/parser.rs:13:36
[INFO] [stdout]    |
[INFO] [stdout] 13 |     infixs: HashMap<TokenType, Box<InfixParslet>>,
[INFO] [stdout]    |                                    ^^^^^^^^^^^^ help: use `dyn`: `dyn InfixParslet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/compiler/parser.rs:140:57
[INFO] [stdout]     |
[INFO] [stdout] 140 |     fn register_prefix(&mut self, tt: TokenType, p: Box<PrefixParslet>) {
[INFO] [stdout]     |                                                         ^^^^^^^^^^^^^ help: use `dyn`: `dyn PrefixParslet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/compiler/parser.rs:148:56
[INFO] [stdout]     |
[INFO] [stdout] 148 |     fn register_infix(&mut self, tt: TokenType, p: Box<InfixParslet>) {
[INFO] [stdout]     |                                                        ^^^^^^^^^^^^ help: use `dyn`: `dyn InfixParslet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/compiler/parser.rs:154:37
[INFO] [stdout]     |
[INFO] [stdout] 154 |         let mut parslet: Option<Box<PrefixParslet>> = None;
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^ help: use `dyn`: `dyn PrefixParslet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/compiler/parser.rs:165:42
[INFO] [stdout]     |
[INFO] [stdout] 165 |             let mut nparslet: Option<Box<InfixParslet>> = None;
[INFO] [stdout]     |                                          ^^^^^^^^^^^^ help: use `dyn`: `dyn InfixParslet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/compiler/parslets/literal.rs:12:26
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn dup(&self) -> Box<PrefixParslet> { Box::new(IntegerParslet) }
[INFO] [stdout]    |                          ^^^^^^^^^^^^^ help: use `dyn`: `dyn PrefixParslet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/compiler/parslets/literal.rs:22:26
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn dup(&self) -> Box<PrefixParslet> { Box::new(FloatParslet) }
[INFO] [stdout]    |                          ^^^^^^^^^^^^^ help: use `dyn`: `dyn PrefixParslet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/compiler/parslets/operator.rs:22:26
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn dup(&self) -> Box<PrefixParslet> { Box::new(PrefixOpParslet::new(self.precedence)) }
[INFO] [stdout]    |                          ^^^^^^^^^^^^^ help: use `dyn`: `dyn PrefixParslet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/compiler/parslets/operator.rs:47:26
[INFO] [stdout]    |
[INFO] [stdout] 47 |     fn dup(&self) -> Box<InfixParslet> { return Box::new(BinaryParslet::new(self.precedence, self.left_rec)) }
[INFO] [stdout]    |                          ^^^^^^^^^^^^ help: use `dyn`: `dyn InfixParslet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/compiler/parslets/mod.rs:10:26
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fn dup(&self) -> Box<PrefixParslet>;
[INFO] [stdout]    |                          ^^^^^^^^^^^^^ help: use `dyn`: `dyn PrefixParslet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/compiler/parslets/mod.rs:15:26
[INFO] [stdout]    |
[INFO] [stdout] 15 |     fn dup(&self) -> Box<InfixParslet>;
[INFO] [stdout]    |                          ^^^^^^^^^^^^ help: use `dyn`: `dyn InfixParslet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around method argument
[INFO] [stdout]    --> src/main.rs:128:57
[INFO] [stdout]     |
[INFO] [stdout] 128 |     let excludes: Vec<&Path> = opts.excludes.iter().map({|a| Path::new(&*a)}).collect();
[INFO] [stdout]     |                                                         ^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_braces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around method argument
[INFO] [stdout]    --> src/main.rs:132:59
[INFO] [stdout]     |
[INFO] [stdout] 132 |     let classpath: Vec<&Path> = opts.classpath.iter().map({|a| Path::new(&*a)}).collect();
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/compiler/module.rs:82:31
[INFO] [stdout]    |
[INFO] [stdout] 82 |     pub fn find_module(&self, s: &str) -> Option<Module> {
[INFO] [stdout]    |                               ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/compiler/module.rs:82:31
[INFO] [stdout]    |
[INFO] [stdout] 82 |     pub fn find_module(&self, s: &str) -> Option<Module> {
[INFO] [stdout]    |                               ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `find_module`
[INFO] [stdout]   --> src/compiler/module.rs:82:12
[INFO] [stdout]    |
[INFO] [stdout] 82 |     pub fn find_module(&self, s: &str) -> Option<Module> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 35 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `find_module`
[INFO] [stdout]   --> src/compiler/module.rs:82:12
[INFO] [stdout]    |
[INFO] [stdout] 82 |     pub fn find_module(&self, s: &str) -> Option<Module> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 34 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 0.86s
[INFO] running `Command { std: "docker" "inspect" "49fc2a2a8cd7b206b50417c40efae00d4858d6c1282f7fc1cf018f578a6003b5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "49fc2a2a8cd7b206b50417c40efae00d4858d6c1282f7fc1cf018f578a6003b5", kill_on_drop: false }`
[INFO] [stdout] 49fc2a2a8cd7b206b50417c40efae00d4858d6c1282f7fc1cf018f578a6003b5
